#ifndef SHADER_H
#define SHADER_H

#include <GL/glew.h>
#include <glm.hpp>
#include <gtc/matrix_transform.hpp>
#include <gtc/type_ptr.hpp>
#include <fstream>
#include <iostream>
#include <sstream>
using namespace std;
class Shader
{
public:
	Shader(const string &vertexPath,const string &fragmentPath);
	~Shader(){}
	void use();
	void setValue(const string &name,bool value);
	void setValue(const string &name,int  value);
	void setValue(const string &name,float value);
	void setValue(const string &name,const glm::vec3 &value);
	void setValue(const string &name,const glm::mat4 &value);
	unsigned int ID;

private:
	void checkError(unsigned int shader,bool isShader);
};

#endif